/**
 * 1.调用 fs 模块, 来操作文件
 */
const fs = require('fs');
const path = require('path');
// import fsImport from 'fs';

let str = '';


/**
 * 出现路径拼接错误的问题, 是因为提供了 ./ 或 ../ 开头的路径
 * 如果要解决这个问题, 可以直接提供一个完整的文件存放路径就行
 */
/*fs.readFile('../图书馆案例.html', 'utf-8', (err, dataStr) => {
  if (!err) {
    console.info('文件读取成功')
    // console.log(dataStr)
    str = dataStr;
    str = str.substr(0, str.length / 2)
  } else {
    console.error('文件读取失败')
    console.log(err)
  }
})*/


/**
 * 使用这种方式, 来解决动态路径问题
 * path.join([...paths]): 用来将多个路径片段拼接成一个完整的路径字符串
 * ../ -> 将paths[cur - 1] ../ 的前一个路径, 返回上一级, 实现路径抵消的效果
 * #
 * path.join('/a', '/b/c', '../', './d', 'e')   --> \a\b\d\e
 * # 可以看见 '../' 的前一个元素 '/b/c'的  /c路径被抵消的  |  ./d 等于与  e 效果
 * #
 *  __dirname                                 ->  D:\WebstormProjects\js-learn\node
 * path.join(__dirname, '../')                ->  D:\WebstormProjects\js-learn
 * path.join(__dirname, '../', '图书馆案例.html')  ->  D:\WebstormProjects\js-learn\图书馆案例.html
 * #
 * 等同于 ../图书馆案例.html
 */
fs.readFile(path.join(__dirname, '../', '图书馆案例.html'), 'utf-8', (err, dataStr) => {
  if (!err) {
    console.info('文件读取成功')
    // console.log(dataStr)
    str = dataStr;
    str = str.substr(0, str.length / 2)
  } else {
    console.error('文件读取失败')
    console.log(err)
  }
})


// __dirname 表示当前文件的所处的目录
console.log(__dirname)
console.log(path.join('/a', '/b/c', '../', './d', 'e'));  // \a\b\d\e
console.log(path.join('a', 'b', '', 'd', 'e'));           // a\b\d\e


let fullPath = path.join(__dirname, '../', '图书馆案例.html');
/**
 * path.basename() 可以获取路径的最后一部分, 经常通过这个方法获取路径中的文件名,
 * path.basename(path[, ext])
 * path <string> 必填, 表示一个路径的字符串
 * ext <string> 可选参数, 表示文件扩展名
 * return <string> 表示路径中的最后一部分
 * #
 * path.extname() 获取路径中的扩展名部分
 */


console.log(path.basename(fullPath))   // 图书馆案例.html
console.log(path.extname(fullPath))   // .html
